import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:time_fly/utils/routes.dart';

void main() {
  // 在组件渲染之后，再覆写状态栏颜色
  // 如果使用了APPBar，则需要修改brightness属性
  SystemUiOverlayStyle style = SystemUiOverlayStyle(
    statusBarColor: Colors.transparent,
  );
  SystemChrome.setSystemUIOverlayStyle(style);
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  GlobalKey<NavigatorState> _navigatorKey = new GlobalKey();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      //导航键 navigatorKey.currentState相当于Navigator.of(context)
      navigatorKey: _navigatorKey,
      //主页
      home: Routes.home(),
      //路由注册初始化
      routes: Routes.getRoutes(),
      //初始路由，当用户进入程序时候，默认自动打开对应路由(home还是位于一级)
      initialRoute: Routes.initialRoute(),
      onGenerateInitialRoutes: null,
      //为一个路由拦截器，当路由发生改变时，该方法会被调用，从而可以根据路由参数返回不同的页面，或者进行路由拦截。
      onGenerateRoute: (routeSettings) {
        return Routes.onGenerateRoute(routeSettings);
      },
      //效果和onGenerateRoute一样，但优先级低于onGenerateRoute。404
      onUnknownRoute: (routeSettings) {
        return Routes.onGenerateRoute(routeSettings);
      },
      //路由观察器，在使用Navigator的相关方法时，会回调相关操作
      navigatorObservers: [],
      //该标题出现在Android：任务管理器的程序快照之上,IOS: 程序切换管理器中
      title: 'TimeFly',
      //跟上面的tiitle一样，但含有一个context参数用于做本地化
      onGenerateTitle: null,
      //该颜色为Android中程序切换中应用图标背景的颜色，当应用图标背景为透明时
      color: null,
      //应用程序的主题，各种的定制颜色都可以设置，用于程序主题切换
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      //黑暗模式
      darkTheme: null,
      //高对比度模式
      highContrastTheme: null,
      //高对比度黑暗模式
      highContrastDarkTheme: null,
      //当前主题模式
      themeMode: ThemeMode.system,
      //当前区域，如果为null则使用系统区域,一般用于语言切换
      locale: null,
      //本地化委托，用于更改Flutter Widget默认的提示语，按钮text等
      // localizationsDelegates: [],
      //当传入的是不支持的语种，可以根据这个回调，返回相近,并且支持的语种
      // localeResolutionCallback: (local, support) {
      //   return local;
      // },
      //传入支持的语种数组
      // supportedLocales: [
      //   Locale('en', 'US'),

      // ],
      // localeListResolutionCallback: null,
      //debug模式下是否显示材质网格，传入bool类型，使用就不写了
      debugShowMaterialGrid: false,
      //当为true时应用程序顶部覆盖一层GPU和UI曲线图，可即时查看当前流畅度情况
      showPerformanceOverlay: false,
      //当为true时，打开光栅缓存图像的棋盘格
      checkerboardRasterCacheImages: false,
      //当为true时，打开呈现到屏幕位图的层的棋盘格
      checkerboardOffscreenLayers: false,
      //当为true时，打开Widget边框，类似Android开发者模式中显示布局边界
      showSemanticsDebugger: false,
      //当为true时，在debug模式下显示右上角的debug字样的横幅，false即为不显示
      debugShowCheckedModeBanner: false,
      // shortcuts: null,
      // actions: null,
      // restorationScopeId: null,
      // scrollBehavior: null,
      useInheritedMediaQuery: false,
    );
  }
}
